// 抖音短视频列表

const app = getApp()

import {
  getLabel,
  getSwiperList,
} from '../../api/douyin'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    tab: {},

    // 搜索项
    search: {
      direction: 'down', // up.向上搜索 down.向下搜索
      minpage: 1, // 最小页码
      maxpage: 1, // 最大页码
      limit: 15, // 搜索长度
      order: '', // 排序方式
      label: '0', // 标签
      label_type: 'all', // 标签类型 union.并集 intersection.交集 radio.单选 empty_label.空标签 all.全部
      labels: [], // 标签组
    },

    hasMore: true, // 是否有更多内容
    list: [], // 视频列表
    loading: false, // 加载中

    // 选择排序方式
    pickerValue: [],
    pickerText: '',
    pickerVisible: false,
    pickerOrders: [{
        label: '发布时间倒序',
        value: 'publishtimedesc'
      },
      {
        label: '发布时间正序',
        value: 'publishtimeasc'
      },
      {
        label: '添加时间倒序',
        value: 'createtimedesc'
      },
      {
        label: '添加时间正序',
        value: 'createtimeasc'
      },
      {
        label: '喜欢数正序',
        value: 'diggcountasc'
      },
      {
        label: '喜欢数倒序',
        value: 'diggcountdesc'
      },
      {
        label: '评论数正序',
        value: 'commentasc'
      },
      {
        label: '评论数倒序',
        value: 'commentdesc'
      },
      {
        label: '分享数正序',
        value: 'shareasc'
      },
      {
        label: '分享数倒序',
        value: 'sharedesc'
      },
    ],

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 初始化项目排序
    this.handlePickerInit()
    // 获取视频标签
    this.getLabel()
    // 获取视频列表
    this.getList()
  },

  // 染完成回调
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 添加抖音短视频
    // app.saveDouyinVideo()
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.getLabel()

    this.setData({
      'search.minpage': 1,
      'search.maxpage': 1,
      hasMore: true,
      list: [],
    })
    this.getList()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.data.hasMore) {
      this.data.search.maxpage++
      this.getList()
    }
  },

  // ####################################################################################################
  // # 基础功能 方法
  // ####################################################################################################

  // 标签切换
  onChange(event) {
    this.setData({
      'search.minpage': 1,
      'search.maxpage': 1,
      hasMore: true,
      list: [],
    })

    const label = event.detail.name
    if (label != 'all' && label != 'empty_label') {
      this.data.search.label_type = 'radio'
      this.data.search.labels = [label]
    } else {
      this.data.search.label_type = label
      this.data.search.labels = []
    }

    this.getList()
  },

  // 查看视频
  onVideoClick(event) {
    // 当前选中的视频坐标
    const index = event.currentTarget.dataset.index

    // 刷视频页面信息记入缓存
    wx.setStorageSync("dataSwiperPlay", {
      page: this.data.list[index].page, // 最大ID
      limit: this.data.search.limit, // 搜索长度
      order: this.data.search.order, // 排序方式
      label_type: this.data.search.label_type, // 标签类型
      labels: this.data.search.labels, // 标签
      videoId: this.data.list[index].id,
    })

    // 测试用
    // wx.setStorageSync("dataSwiperPlay", {
    //   page: 4, // 最大ID
    //   limit: 5, // 搜索长度
    //   label: '0', // 其他限制条件
    //   videoId: 17082, // 17082-17078
    // })

    app.navigationTo("packagedouyin/pages/play/play")
  },

  // ##################################################

  // 返回上一页面
  onBack() {
    wx.navigateBack()
  },

  // 打开动作面板
  onOpenActionSheet() {
    wx.showActionSheet({
      itemList: ['发布时间倒序', '发布时间正序', '添加时间倒序', '添加时间正序', '喜欢数倒序', '喜欢数正序'],
      success: res => {

        console.log('tapIndex', res.tapIndex)

      }
    })
  },

  // ##################################################
  // # 选择项目列表排序
  // ##################################################

  // 初始化项目排序
  handlePickerInit() {
    let porder = wx.getStorageSync("dataInitItemOrder")
    if (!porder)
      porder = 'publishtimedesc'
    // console.log('porder', porder)
    let plabel = ''
    this.data.pickerOrders.forEach((item, index) => {
      if (item.value == porder)
        plabel = item.label
    })
    this.setData({
      pickerValue: [porder],
      pickerText: plabel,
      'search.order': porder,
    })
  },

  // 打开Picker - 选择排序方式
  handleOpenPicker(e) {
    // console.log('handleOpenPicker', e)
    this.setData({
      pickerVisible: true
    })
  },

  // picker选择
  onPickerChange(e) {
    // console.log('picker选择了', e.detail)
    wx.setStorageSync("dataInitItemOrder", e.detail.value[0])
    this.setData({
      pickerValue: e.detail.value,
      pickerText: e.detail.label[0],
      pickerVisible: false,
      'search.order': e.detail.value[0],
      'search.minpage': 1,
      'search.maxpage': 1,
      hasMore: true,
      list: [],
    })
    this.getList()
  },

  // ####################################################################################################
  // # 接口访问 方法
  // ####################################################################################################

  // 获取视频标签
  getLabel() {
    getLabel().then(res => {
      if (res.status === 200) {
        this.data.tab = res.data
        this.setData({
          tab: this.data.tab
        })
      } else {
        app.showToast(res.msg)
      }
    })
  },

  // 获取视频列表
  getList() {
    this.setData({
      loading: true
    })
    // console.log('getList', this.data.search)
    getSwiperList(this.data.search).then(res => {
      if (res.status === 200) {
        const count = res.data.list.length
        const list = res.data.list
        if (count) {
          for (let i = 0; i < count; i++)
            this.data.list.push(list[i])
          this.setData({
            list: this.data.list,
          })
        } else {
          this.setData({
            hasMore: false, // 没有更多内容了
          })
        }
      } else {
        app.showToast(res.msg)
      }
      this.setData({
        loading: false
      })
      wx.stopPullDownRefresh()
    })
  },

  // ####################################################################################################

})